package com.agrimall.mapper;

import com.agrimall.entity.Announcement;
import org.apache.ibatis.annotations.Param;
import java.util.List;

/**
 * 公告Mapper接口
 */
public interface AnnouncementMapper {
    /**
     * 插入公告
     */
    int insert(Announcement announcement);
    
    /**
     * 更新公告
     */
    int update(Announcement announcement);
    
    /**
     * 删除公告
     */
    int delete(Long announcementId);
    
    /**
     * 根据ID查询公告
     */
    Announcement selectById(Long announcementId);
    
    /**
     * 查询所有公告（分页）
     */
    List<Announcement> selectAll(@Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 查询显示的公告
     */
    List<Announcement> selectVisible(@Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 根据类型查询显示的公告
     */
    List<Announcement> selectVisibleByType(@Param("type") Integer type, @Param("offset") int offset, @Param("limit") int limit);
    
    /**
     * 条件搜索公告（支持title、content、type）
     */
    List<Announcement> selectByConditions(@Param("title") String title, 
                                           @Param("content") String content, 
                                           @Param("type") Integer type, 
                                           @Param("offset") int offset, 
                                           @Param("limit") int limit);
    
    /**
     * 统计符合条件的公告数量
     */
    int countByConditions(@Param("title") String title, 
                         @Param("content") String content, 
                         @Param("type") Integer type);
}



